/* 
需求：
流程：
    1.包含头文件
    2.初始化ROS2客户端
    3.自定义节点类：
    4.调用spin函数，传入自定义类对象指针，
    spin又称回旋函数，当执行到spin时，又会回去执行一次函数，而不是退出，可以理解为for语句
    5.释放资源
*/
 
// 1.包含头文件
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"
 
// 3.自定义节点类：
class MyNode: public rclcpp::Node{
public:
    MyNode():Node("zhen_keng","zuoxie"){
        // 《3.5.3_话题重名_02话题设置》
        // 全局话题: 和命名空间、节点名称五关系；  全局话题，以 / 开头
        // pub_ = this->create_publisher<std_msgs::msg::String>("/shi",10);

        // 相对话题
        // pub_ = this->create_publisher<std_msgs::msg::String>("kaihui",10);

        // 私有话题
        pub_ = this->create_publisher<std_msgs::msg::String>("~/vip",10);

    }
private:
    rclcpp::Publisher<std_msgs::msg::String>::SharedPtr pub_;
};
 
int main(int argc, char ** argv)
{
  // 2.初始化ROS2客户端
  rclcpp::init(argc,argv);
 
  // 4.调用spin函数，传入自定义类对象指针
  rclcpp::spin(std::make_shared<MyNode>());
 
  // 5.释放资源
  rclcpp::shutdown();
 
  return 0;
}